Face recognition computer algorithms are used to identify or verify individuals. Each person has characteristics that are useful during the recognition process. A fundamental challenge in face recognition lies in identifying the facial features that are important for the identification of faces. For example, if three faces have a feature that is very similar, such as nose length, it is difficult to use that feature to distinguish the faces. In contrast, if the same three faces have different eye colors, eye color is a feature that can be used to reliably distinguish the faces.
Typically recognition modules are trained by analyzing a few samples of each face. Samples of the same face may have appearance variations due to variations resulting from varying lighting/illumination conditions, different head poses and different facial expressions. A small number of samples per face cannot capture the wide range of variations that are likely to exist when face recognition algorithms are utilized.
A typical approach to capture discriminative facial features is Bayesian face recognition. In this algorithm, differences images are calculated between training images. With this kind of transformation, a face recognition problem is converted to a binary classification problem by predicting whether the differences images are from the same individual. However, this algorithm is not capable of large scale training. Moreover, this kind of transformation is not invertible, therefore facial information is lost to some extent.